package com.itheima.edu.info.manager.service;

import com.itheima.edu.info.manager.dao.StudentDao;
import com.itheima.edu.info.manager.domain.Student;

/*
    业务员类
    1.这里的所有方法都是给客服用的
    2.如果某些业务涉及到对数据仓库的数据进行访问的话,那么需要在业务员类中操作库管对象
    3.该类的核心作用是用于处理业务逻辑,例如:判断录入id是否存在
 */
public class StudentService {
    //创建studentDao对象进行添加操作
    private StudentDao studentDao = new StudentDao();

    public boolean addStudent(Student stu) {
        //返还给客服信息
        return studentDao.addStudent(stu);
    }

    //在库管对象中查找学号是否存在
    public boolean isExists(String id) {
        //把库管中所有学生信息都拿出来
        Student[] students = studentDao.findAllStudent();
        //定义一个标记位,假设不存在
        boolean exists = false;
        for (int i = 0; i < students.length; i++) {
            Student s = students[i];
            //判断当前对象不为空并且录入的学号存在
            if (s != null && s.getSid().equals(id)) {
                exists = true;
                break;
            }
        }
        return exists;
    }
//
    public Student[] findAllStudet() {
        Student[] allStudent = studentDao.findAllStudent();
        boolean flag = false;
        //遍历数组,如果有一个索引位置不为空,就标记为true
        for (int i = 0; i < allStudent.length; i++) {
            Student students = allStudent[i];
            if(students!=null){
                flag = true;
                break;
            }
        }
        //根据标记值来决定当前方法的返回值
        if(flag){
            //为true表示有数据,返回这个对象
            return allStudent;
        }else{
            //false 返回空
            return null;
        }
    }

    public void deletStudet(String delId) {
        studentDao.deletStudet(delId);
    }

    public void updateStudent(String updateId, Student s) {
        studentDao.updateStudent(updateId,s);
    }
}
